Try for IEEE754-precise poly2tri triangulation results#4500
Conversation
This kills a little performance but makes it more robust to use the resulting meshes as "gold" results while using less safe optimization options elsewhere.
|
It turns out that this is insufficient, and even compiling all of I'm not sure if I want to disable FMA optimizations for every single geometric calculation. I may have to make push/pop versions of those pragmas, and put them into |
|
Still haven't had much time to play with this, but I at least checked that the rest of src/mesh and src/numerics were overkill; all we need is the stuff in this PR plus some subset of src/geom |
@loganharbour is experimenting with adding
CXXFLAGSfor Haswell architecture compiler optimizations, and the fused-multiply-add instructions there are (via rounding differently) changing MOOSEXYDelaunayoutputs. Compiling the whole thing with-ffp-contract=offfixes the problem, but we do want to allow fused-multiply-add in most of our code, so let's see if we can just disable non-IEEE754-compliant optimizations selectively.Leaving this marked as draft until Logan can verify that it works for him.